var History = function History() {
    //如果不能new  要抛出一个错误
    throw new TypeError("Illegal constructor");
}//构造函数
catvm.safefunction(History); //tostring 保护
//设置原型链上显示的名字***************************************************************************
Object.defineProperties(History.prototype, {
    [Symbol.toStringTag]: {
        value: "History",
        configurable: true
    }
});
// 原型指向原型父亲***************************************************************************
history={};
history.__proto__ = History.prototype
//该环境下的属性和方法***************************************************************************
History.prototype.length=5
History.prototype.replaceState = function replaceState(e,v,n) {
    catvm.debugger_()
    location.search = n
}
catvm.safefunction(History.prototype.replaceState)

// 对于History.prototype原型无法调用，但是history实例却可以调用的属性/方法进行抛出错误的设置***************************************************************************
for (var i in History.prototype) {
    history[i] = History.prototype[i];
    History.prototype.__defineGetter__(i, function () {
        throw new TypeError("Illegal constructor");
    })
}
//代理***************************************************************************
history=catvm.proxy(history)

